package com.lantosec.hmrp.modules.eval.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lantosec.hmrp.core.kit.PageVO;
import com.lantosec.hmrp.core.kit.Result;
import com.lantosec.hmrp.modules.eval.entity.*;
import com.lantosec.hmrp.modules.eval.vo.EvalPlanVO;

import java.util.List;

/**
 * <p>
 * 考评计划 服务类
 * </p>
 *
 * @author AutoCode
 * @since 2020-03-17
 */
public interface IEvalPlanService extends IService<EvalPlan> {

    /**
     * 考评计划条件查询
     * @param startDate
     * @param endDate
     * @param evalPlanName
     * @param evalPlanCycle
     * @param evalPlanType
     * @param evalMode
     * @param state
     * @return
     */
    List<EvalPlanVO> queryAll(PageVO<EvalPlanVO> page,String startDate, String endDate, String evalPlanName, Integer evalPlanCycle, Integer evalPlanType, Integer evalMode, Integer state);

    /**
     * 新增考评计划
     * @param evalPlanList
     */
    public Boolean saveAll(EvalPlanList evalPlanList);

    /**
     * 查询考评计划详细信息
     * @param evalPlanId
     * @return
     */
    public EvalPlanList getEvalPlanDetailed(Integer evalPlanId);

    //List<EvalTaskDetailed> getMonuthPlanDetailInfo(Integer taskId);

    /**
     * 查询考评计划的执行者
     * @param evalPlanId
     * @return
     */
    public List<EvalPlanExecutor> getEvalPlanExecutor(Integer evalPlanId);

    /**
     * 查询考评计划的考评对象
     * @param evalPlanId
     * @param targetMode
     * @return
     */
    public List<EvalPlanTarget> getEvalPlanTarget(Integer evalPlanId, Integer targetMode);

    /**
     * 编辑方案信息
     * @param evalPlanList
     */
    void updateAll(EvalPlanList evalPlanList);

    /**
     * 判断岗位是否是部门的相同岗位
     * @param deptIds
     * @param positionId
     * @return
     */
    Result getSysDeptPosition(String[] deptIds, String positionId);
}
